1. Field of the Invention
The present invention relates to the field of global positioning satellite systems, and in particular to a method and apparatus for substituting sensor data for a satellite signal in a GPS receiver.
2. Background Art
In a typical global positioning system (GPS), a receiver monitors signals from a plurality of GPS satellites to determine position, speed or other information about the receiver. The GPS receiver must receive a signal from four GPS satellites to determine the receiver""s longitude, latitude and altitude as well as an adjustment to a signal generated from the receiver""s clock. Since a GPS receiver must be in direct line of site with a GPS satellite to receive a signal from the satellite, a problem arises when, in some instances (e.g., travel through a canyon or between large buildings), a GPS receiver loses direct line of site contact with a GPS satellite. Prior art methods of compensating for the loss of a GPS satellite signal are inefficient. This problem can be better understood with a review of GPS systems.
A global positioning system now provides a worldwide, 24 hours, location service. The system includes multiple GPS satellites to broadcast location signals, control stations to monitor and control the satellites, and GPS receivers to receive the signals. Commercial Global Positioning System (GPS) receivers now are used to provide accurate location information in many navigation, tracking, and timing applications. A GPS antenna that is a part of a GPS receiver must have a line of sight to a GPS satellite to receive the GPS signal from that satellite.
GPS location is based on one-way ranging from the GPS satellites to the GPS receiver antenna. Ranges are measured to all satellites simultaneously in view by matching (correlating) the frequency and the time of arrival (TOA) of the incoming GPS signal to a receiver-generated replica signal. With four ranges (i.e., four known parameters), the receiver can determine four unknowns, typically latitude, longitude, altitude, and a clock adjustment to the replica. The ranges are termed xe2x80x9cpseudo-rangesxe2x80x9d because the actual distances to the GPS satellite are not known until the internal replica has been adjusted. Time of day is computed from the adjustment to the TOA of the replica.
The clock adjustment must be calculated because, among other reasons, the frequency of a clock used in a GPS receiver typically changes slightly during normal use due to such factors as changes in temperature of the crystal oscillator used in the clock. Temperature changes in the crystal oscillator result from the normal electronic operation of the receiver as well as environmental factors outside of the GPS receiver (e.g., the receiver traveling from a sunny area to a shady area). Even when the average temperature of a crystal oscillator is not changing over time, the temperature drifts above or below the average temperature enough to affect the performance of the crystal oscillator. Thus, failing to adjust the signal generated from the clock could result in erroneous position calculations.
Each GPS satellite broadcasts its position in a signal having a carrier frequency at approximately 1.575 GHz. The signal is modulated by a PRN code sequence of 1023 chips, repeating (transmitted) at a 1 millisecond interval, where each satellite uses a different PRN code sequence. The use of the different PRN sequences enables a GPS receiver to distinguish the GPS signals from different GPS satellites. The frequency of the signal received from each GPS satellite will have a Doppler shift due to the relative velocity between the GPS satellite and a GPS receiver antenna. A velocity for the GPS receiver antenna may be determined from the rate of change of the location or from the rate of change of the pseudo-ranges after accounting for the Doppler shift due to the motion of the satellite.
During normal use, some GPS receivers will only receive a signal from fewer than four GPS satellites. As a result, the GPS receiver cannot calculate an exact value for longitude, latitude, altitude and receiver clock adjustment. Some prior art GPS receivers compensate for having fewer than four GPS satellite signals by waiting until at least four GPS satellite signals are present to calculate values for longitude, latitude, altitude, and signal adjustment. This means that the user of a GPS system will not receive data for longitude, latitude, altitude, and signal adjustment until the GPS receiver establishes contact with a sufficient number of GPS satellites.
One prior art GPS receiver maintains a table of its clock frequency at different operating temperatures (at every degree Celsius) while in contact with at least four GPS satellites sufficient to compute full GPS solution. The receiver then uses a measure of the temperature and the table to estimate the frequency of the crystal oscillator in its clock, and uses the estimated frequency to control which frequencies it scans in order to speed up GPS satellite signal acquisition on power up or re-establish contact with a lost GPS satellite signal.
Other prior art GPS receivers make the assumption that altitude remains constant between the moment the number of GPS satellites with which the receiver has contact drops below four and the moment the GPS receiver establishes contact with four GPS satellites again. With this assumption, the GPS receiver uses three ranges (i.e., three known parameters) to determine the remaining three unknowns, longitude, latitude and adjustment to signal. However, if the number of ranges available to the receiver is two or fewer, this method is not able to calculate longitude, latitude or adjustment data. Additionally, if altitude is changing significantly, this prior art method fails to provide sufficient calculations of longitude, latitude and adjustment data.
Other prior art GPS receivers designed for the car navigation make the assumption that the direction of motion remains constant between the moment the number of GPS satellites with which the receiver has contact drops below four and the moment the GPS receiver establishes contact with four GPS satellites again. With this assumption, the GPS receiver uses three ranges (i.e., three known parameters) to determine the remaining three unknowns, longitude, latitude and adjustment to signal. However, such an assumption is not always true even for the car navigation, let alone other GPS applications.
A conventional equation used to derive position from GPS signals is expressed by the following matrix equation:
rxe2x88x92d=H*(xxe2x88x92xo)+c*1+exe2x80x83xe2x80x83(1)
In Equation (1), r denotes pseudo-range measurements for all GPS satellites, x is the true and unknown receiver position, xo is the assumed position of the receiver, d is a vector of the distances from the point xo to the GPS satellites, H is a matrix of the satellite directional vectors, c is the unit clock error times speed of light and vector e represents measurement noise.
Usually, x is a three-dimensional vector (i.e., latitude, longitude and altitude), so Equation (1) has 4 unknowns (i.e., latitude, longitude, altitude and c), and is resolvable if vectors r and d have dimension of 4 or more. By using various techniques, Equation (1) is resolved to determine the required correction, dx, such that
x=xo+dxxe2x80x83xe2x80x83(2)
In many cases, the altitude is known. In such cases, Equation (1) has only three unknowns (i.e., latitude, longitude and c), and is resolvable using signals from only three GPS satellites.
Equation (1) represents the relationship between receiver""s position, receiver clock error and observed pseudo-ranges. A similar relationship is derivable between the observed signal Doppler, local oscillator frequency drift and the receiver""s velocity:
D=H*(vxe2x88x92vs)+f*1+exe2x80x83xe2x80x83(3)
In Equation (3), D is a vector of the observed Doppler signals, H is the same directional matrix as in Equation (1), v is an unknown vector of the receiver""s ground velocity, vs is computed satellite velocity, and f is a frequency error of the local oscillator times speed of light. As in Equation (1), e denotes measurement noise.
Embodiments of the present invention are directed to a method and apparatus for substituting sensor data for a satellite signal in a GPS receiver. In one embodiment, a change in sensor data is used to substitute sensor data for a lost satellite signal. In one embodiment, the sensor data is temperature data.
In one embodiment of the present invention, a mathematical model of a GPS receiver""s clock""s response to temperature change is maintained. In one embodiment, the mathematical model is a third order polynomial.
In one embodiment, when a GPS receiver has contact with at least four GPS satellites, the receiver collects data on changes in temperature and resulting changes in the GPS receiver""s clock frequency. In one embodiment, temperature data is collected approximately every hundred milliseconds. The data is incorporated into the GPS receiver""s mathematical model. In one embodiment, the data is incorporated by modifying one or more coefficients in the mathematical model.
In one embodiment, if a GPS receiver only has contact with three GPS satellites, changes in temperature and last determined value of the receiver oscillator frequency, and the mathematical model are used to estimate an adjustment to the current value of the receiver oscillator frequency. The estimate is used with the three ranges (three known parameters) to calculate the remaining three unknowns, longitude, latitude and altitude.
In another embodiment, if a GPS receiver only has contact with two GPS satellites, changes in temperature and last determined value of the receiver oscillator frequency, and the mathematical model are used to estimate an adjustment to the current value of the receiver oscillator frequency. Additionally, the altitude is estimated. In one embodiment, the altitude is estimated by assuming it remains unchanged from when it was last calculated from the full GPS solution. In another embodiment, the change in altitude is estimated using pressure sensor data. The adjustment and altitude estimates are used with the two ranges (two known parameters) to calculate the remaining two unknowns, longitude and latitude.